//加载模块（组件）layer模块 作用是弹出层，提示框
//form 表单组件
//table组件
//每个组件都有对应的方法事件
layui.use(['layer', 'form', 'laydate', 'table','tableSelect'], function () {
    var layer = layui.layer
        , form = layui.form
        ,$=layui.$
        ,table = layui.table
        ,laydate=layui.laydate;
    tableSelect=layui.tableSelect;
    //执行一个laydate实例
    laydate.render({
        elem: '#dealTime' //指定元素
    });


    //table组件 render 渲染方法（加载表格等）
    //render({json对象}) json在js 中表示js对象的一种方式
    //格式{
    // 属性名1：值1
    //属性名2：值2
    //}
    //这是根据数据库查 因为没有book表就拿user表代替了查询用户的信息
    table.render({
        elem: '#mytable'//表格的ID
        ,url: 'selectChengjiaoQingSuan'//表格的数据源 controller里的方法
        ,cellMinWidth: 60 //全局定义常规单元格的最小宽度，layui 2.2.1 新增
        ,height:'full-180'
        ,toolbar:'#userToolBar'//通过工具条的ID来区分
        ,page: true//开启分页
        ,limit:5//默认进去每页显示5条
        ,limits:[5,10,15]//自己设置下拉列表5,10,15，行
        ,cols: [[
            //field:列字段的名字要与实体类的名字完全一致  title就是表格的标题    sort：是排序的意思
            //数据没加载出来的原因1：
            //1:压根没有数据
            //2:有一个列没对象
            //hide:true 隐藏
            {type: 'checkbox', field: 'left'}
            ,{field: 'securityId',align:'center',  title: '证券代码', sort: true}
            ,{field: 'securityName',  title: '基金名称',align:'center'}
            , {field: 'dealNumber',  title: '数量',align:'center'}
            ,{field: 'commissionFees',title:'佣金费',align:'center'}
            ,{field: 'transferFee',title:'过户费',align:'center'}
            ,{field: 'handle',title:'经手费',align:'center'}
            ,{field: 'stampDuty',title:'印花税',align:'center'}
            ,{field: 'control',title:'征管费',align:'center'}
            ,{field: 'dealMoney',title:'交易金额',align:'center'}
            ,{field: 'endMoney',title:'实付金额',align:'center'}
        ]]
    });


    //给表格的工具栏添加监控
    table.on('toolbar(mytable)', function (obj) {
        //获取选中复选框的对象，
        var checkStatus=table.checkStatus(obj.config.id);//得到表格选中行的ID
        console.log(checkStatus+"bug")
        //监控工具条的事件处理方法
        //判断 点击的是工具栏 当中的哪个按钮 要根据按钮的 lay-event 属性来加以区分
        switch (obj.event) {
            case 'add':
                layer.open({
                    type:1,
                    title:'新增用户窗口',
                    closeBtn:1,
                    move:false,
                    content:$("#addWorkUser"), //引用下面用户新增界面的ID（内容）div的ID
                    btn:[],
                    area:['500px','450px']
                })
                // $("#addForm").reset();//表单的ID--------------------
                form.render();//表格对象的重新加载方法
                break;
            case 'deleteAll':
                // alert('批量删除');
                //删除的代码写这里
                var data1=obj.data;//获取当前行数据
                var layEvent=obj.event;//获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
                var tr = obj.tr; //获得当前行 tr 的 DOM 对象（如果有的话）
                var data = checkStatus.data;
                console.log(data)
                if(data.length==0){
                    layer.msg("请至少选择一条数据",)
                }else {
                    var cashStockId=[];//命名随便名，是一个数组，数组名随便取
                    for (var i = 0; i <data.length; i++) {
                        cashStockId.push(data[i].cashStockId);//得到你选择的id push就是放到数组里
                    }
                    console.log(cashStockId+"快快快2");//打印
                    //这里是多选删除的
                    layer.confirm('真的删除行么',{icon:2}, function(index){
                        //是否确定删除 是就删 取消就不删
                        layer.closeAll();

                        $.ajax({
                            type:"post",
                            url:"deleteCashStock?cashStockId="+cashStockId,//跟删除的是一个方法
                            //field:ids.join(','),
                            data:data1,
                            success:function (msg){
                                //刷新表格
                                table.reload("mytable")//mytable 是表格的ID
                                location.reload();//刷新,第二种刷新方式，比如第四页只有一条数据，你把它删除了，它就会显示无数据，我们要显示的是前面三页数据，所以就再拿location.leload();再刷新一次
                            }
                        })
                    })
                }
                break;
            case 'update':
                alert("批量修改");
                break;
            case 'search':
                 // alert('模糊查询');
                //模糊查询的代码
                //table.reload();//表格对象的重新加载方法

                var dealTime=$("#dealTime").val();

                //重新把表格渲染了一遍 mytable是表格的ID
                table.reload('mytable',
                    {
                        //查询的条件
                        where: {
                            'dealTime':dealTime
                        },
                        //page设定默认当前页为1 current 当前的
                        page: {
                            curr: 1
                        }
                    });
                //进行搜索之后不再让值消失，除非自己清空
                $("#dealTime").val(dealTime);
                break;
        }
    })






    //表单进行验证的规则定义 自定义验证规则  规则的使用方法
    // lay-verify="name"
    form.verify({
        username: function(value, item){ //value：表单的值、item：表单的DOM对象
            if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
                return '用户名不能有特殊字符';
            }
            if(/(^\_)|(\__)|(\_+$)/.test(value)){
                return '用户名首尾不能出现下划线\'_\'';
            }
            if(/^\d+\d+\d$/.test(value)){
                return '用户名不能全为数字';
            }

            //如果不想自动弹出默认提示框，可以直接返回 true，
            // 这时你可以通过其他任意方式提示（v2.5.7 新增）
            if(value === 'sb'){
                return '用户名不能为敏感词';
            }
        }

    });



    //查询
    laydate.render({
        elem: '#dealTime'
    });






});
//取消框
function quxiao(){
    layer.closeAll();
}